package com.qdlc.p2p.biz.service;

import java.util.List;

import com.qdlc.p2p.dal.dto.*;

public interface RateInterestService {

    /**
     * 用户投标，使用加息券操作，只保存加息券使用记录，
     * 不进行其他业务逻辑处理
     *
     * @param tender
     * @param rateInteId
     */
    void tenderUseRateInte(BorrowTender tender, long rateInteId);

    /**
     * 处理每一个用户使用加息券操作
     *
     * @param rateInterestId
     * @param tender
     * @param collectionList 原始待收记录
     */
    void useRateInterest(long rateInterestId, BorrowTender tender, List<BorrowCollection> collectionList, UseRateLog useRateLog, String logType);


    /**
     * 满标复审，处理投标使用加息券的投资人
     *
     * @param tenderId
     * @param logType
     */
    void borrowSuccessDoRate(long tenderId, String logType);

    /**
     * 用户还款，处理平台垫付加息
     * 券产生额外利息业务
     * 处理逻辑：根据借款id和期数，找出当期
     * 平台应该垫付的加息券额外加息金额，针对原有
     * 待收记录，此方法不做处理
     *
     * @param collectionId
     * @param logType
     */
    void repayWebPayUpInterest(long collectionId, String logType);

    /**
     * 流标或者满标复审不通过时，处理
     * 投标使用加息券相关的业务
     *
     * @param borrowId
     */
    void borrowFailDoRate(long borrowId);

    /**
     * 根据borrowCollectionId获取用户加息利息
     *
     * @param collectionId
     * @return
     */
    double getUpRateInterestByCollectionId(long collectionId);

    /**
     * 获取加息券 产生的代收利息列表（账户中心使用）
     *
     * @param user
     * @param date
     * @return
     */
    List<Object[]> getRateCollectionInterest(User user, String date);
}
